export default {
    namespaced: true,
    state: {
        name: "cart",
        carts: []
    },
    mutations: {
        // ⭐️⭐️⭐️⭐️ 第四步 把形参变成cartItem
        ADD_CART(state, cartItem) {

            state.carts.push(cartItem)
        },
        //INCREMENT_COUNT 让购物车数量+1
        INCREMENT_COUNT(state, id) {
            //找到购物车中这条目标数据
            let target = state.carts.find(item => item.id === id)

            target.count++
        }
    },
    actions: {
        SET_CARTS(context, payload) {
            // console.log(context)
            //获取product模块的products数据

            let products = context.rootState.product.products
            //传递过来的产品id
            let product_id = payload;

            //通过id找出目标数据
            //⭐️⭐️第二步 将target变量名 变成productItem
            let productItem = products.find(item => item.id === product_id)

            // console.log(target)

            //提交mutation
            //⭐️⭐️⭐️ 第三步 注释掉这句
            // context.commit('ADD_CART', target)

            //这个productItem是传递过来的商品数据

            //1.给购物车数据设定字段

            //count 数量 title 产品名字 价格 id

            //2.判断 首先要添加进来的产品id查询一下carts中有没有这条数据 如果没有,就增加一条,如果有,就让数量+1
            // ⭐️ 第一步要修改的 将state变成context.state☝🏻
            let isExistsItem = context.state.carts.find(item => item.id === productItem.id)
            // console.log(productItem)
            // console.log(isExistsItem)

            if (!isExistsItem) {
                //如果没有这条数据,添加一条
                let cartItem = {
                    id: productItem.id,
                    count: 1,
                    title: productItem.title,
                    price: productItem.price
                }
                // console.log(cartItem)
                //把这条数据添加到carts
                //⭐️⭐️⭐️⭐️⭐️ 第五步 提交mutation
                context.commit('ADD_CART', cartItem)
            } else {
                //让库存的数量+1
                context.commit('INCREMENT_COUNT', isExistsItem.id)
            }

            //1.让产品product/products的库存(inventory)-1
            //{root:true} 表示的是 当前这次操作 是操作的根store的commit方法
            context.commit('product/DECREMENT_INVENTORY', product_id, { root: true })
            // => 相当于 this.$store.commit('product/DECREMENT_INVENTORY')

        }
    },
    getters: {},
    // modules: {}
}